Upload media file for a creative.
curl --request POST \
--url https://your_a2_service/api/manager/creatives/{crid}/media \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form file='@example-file'import requests
url = "https://your_a2_service/api/manager/creatives/{crid}/media"
files = { "file": ("example-file", open("example-file", "rb")) }
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '<string>');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://your_a2_service/api/manager/creatives/{crid}/media', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your_a2_service/api/manager/creatives/{crid}/media",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your_a2_service/api/manager/creatives/{crid}/media"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://your_a2_service/api/manager/creatives/{crid}/media")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://your_a2_service/api/manager/creatives/{crid}/media")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"height": 1,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"owner_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "banner",
"updated_at": "2023-11-07T05:31:56Z",
"width": 1,
"advertiser_domain": "<string>",
"advertiser_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"banner": {
"ext": {
"alt": "<string>",
"impression_tracking_url": "<string>",
"show_ad_badge": true
},
"img": "<string>",
"link": {
"url": "<string>",
"ext": null,
"trkr": [
"<string>"
],
"urlfb": "<string>"
}
},
"description": "<string>",
"end_date": "2023-11-07T05:31:56Z",
"ext": {},
"native": {
"asset": [
{
"data": {
"value": "<string>",
"ext": null,
"len": 123,
"type": 1
},
"ext": null,
"id": 123,
"image": {
"url": "<string>",
"ext": null,
"h": 1,
"type": 1,
"w": 1
},
"link": {
"url": "<string>",
"ext": null,
"trkr": [
"<string>"
],
"urlfb": "<string>"
},
"req": 0,
"title": {
"text": "<string>",
"ext": null,
"len": 1
},
"video": {
"adm": "<string>",
"curl": "<string>",
"ext": null
}
}
],
"ext": null,
"link": {
"url": "<string>",
"ext": null,
"trkr": [
"<string>"
],
"urlfb": "<string>"
}
},
"no": 123,
"start_date": "2023-11-07T05:31:56Z",
"status": "inactive",
"video": {
"adm": "<string>",
"api": [
32767
],
"ctype": 32767,
"curl": "<string>",
"dur": 1,
"ext": null,
"mime": [
"<string>"
]
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication. Pass the access token in the Authorization: Bearer <token> header.
Path Parameters
Body
Media file to upload. Accepted formats: image (PNG, JPEG, GIF) or video (MP4).
Response
Successful Response
Height of the creative in pixels.
x >= 0Unique identifier for the creative (UUID v7).
Human-readable name of the creative.
User ID of the admin/operator who created the creative.
Type of the creative (e.g., "banner", "video", "native").
banner, video, native Width of the creative in pixels.
x >= 0Advertiser domain using this creative.
Advertiser ID using this creative.
읽기/응답용 DTO — 저장된 AdCOM Banner를 그대로 노출. 검증 없음.
Show child attributes
Show child attributes
Optional description of the creative.
extension for the creative
Native creative content
Show child attributes
Show child attributes
Status of the creative.
inactive, active Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://your_a2_service/api/manager/creatives/{crid}/media \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form file='@example-file'import requests
url = "https://your_a2_service/api/manager/creatives/{crid}/media"
files = { "file": ("example-file", open("example-file", "rb")) }
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '<string>');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://your_a2_service/api/manager/creatives/{crid}/media', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your_a2_service/api/manager/creatives/{crid}/media",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your_a2_service/api/manager/creatives/{crid}/media"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://your_a2_service/api/manager/creatives/{crid}/media")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://your_a2_service/api/manager/creatives/{crid}/media")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"height": 1,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"owner_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "banner",
"updated_at": "2023-11-07T05:31:56Z",
"width": 1,
"advertiser_domain": "<string>",
"advertiser_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"banner": {
"ext": {
"alt": "<string>",
"impression_tracking_url": "<string>",
"show_ad_badge": true
},
"img": "<string>",
"link": {
"url": "<string>",
"ext": null,
"trkr": [
"<string>"
],
"urlfb": "<string>"
}
},
"description": "<string>",
"end_date": "2023-11-07T05:31:56Z",
"ext": {},
"native": {
"asset": [
{
"data": {
"value": "<string>",
"ext": null,
"len": 123,
"type": 1
},
"ext": null,
"id": 123,
"image": {
"url": "<string>",
"ext": null,
"h": 1,
"type": 1,
"w": 1
},
"link": {
"url": "<string>",
"ext": null,
"trkr": [
"<string>"
],
"urlfb": "<string>"
},
"req": 0,
"title": {
"text": "<string>",
"ext": null,
"len": 1
},
"video": {
"adm": "<string>",
"curl": "<string>",
"ext": null
}
}
],
"ext": null,
"link": {
"url": "<string>",
"ext": null,
"trkr": [
"<string>"
],
"urlfb": "<string>"
}
},
"no": 123,
"start_date": "2023-11-07T05:31:56Z",
"status": "inactive",
"video": {
"adm": "<string>",
"api": [
32767
],
"ctype": 32767,
"curl": "<string>",
"dur": 1,
"ext": null,
"mime": [
"<string>"
]
}
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}